// 导入所需的模块
const path = require('path')
const grpc = require('@grpc/grpc-js')
const protoloader = require('@grpc/proto-loader')

// 拼接message.proto文件所在的路径
const PROTO_PATH = path.join(__dirname,'message.proto')
const PackageDefition = protoloader.loadSync(PROTO_PATH,{
    keepCase: true, // 保持大小写,不转化为驼峰命名
    longs: String,  // 将 int64 和 uint64 类型转换为 JavaScript 的 String 避免整数溢出
    enums: String,  // 将枚举类型转换为 JavaScript 的 String
    defaults: true, // 为缺失的字段填充默认值
    oneofs: true    // 允许使用 oneof 定义的消息
})

// 使用 grpc.loadPackageDefinition 将加载的 .proto 文件内容转换为 gRPC 可用的包定义。
const PackageDescriptor = grpc.loadPackageDefinition(PackageDefition)

// 提取服务定义
const message_proto = PackageDescriptor.message

// 导出服务定义
module.exports = message_proto
